From fb1d2719d9c06bcca98d99d7155f00a0021b3af2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Mon, 26 Jun 2017 14:50:48 +0200 Subject: [PATCH] entry: Fix node ordering Fix the icon order --- gtk/gtkentry.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index e1bc2ba5c2..4891b53586 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -2853,8 +2853,8 @@ update_node_ordering (GtkEntry *entry) { GtkEntryPrivate *priv = entry->priv; EntryIconInfo *icon_info; - GtkEntryIconPosition icon_pos; - GtkCssNode *sibling, *parent; + GtkEntryIconPosition first_icon_pos, second_icon_pos; + GtkCssNode *parent; if (priv->progress_widget) { @@ -2864,21 +2864,25 @@ update_node_ordering (GtkEntry *entry) } if (gtk_widget_get_direction (GTK_WIDGET (entry)) == GTK_TEXT_DIR_RTL) - icon_pos = GTK_ENTRY_ICON_SECONDARY; + { + first_icon_pos = GTK_ENTRY_ICON_SECONDARY; + second_icon_pos = GTK_ENTRY_ICON_PRIMARY; + } else - icon_pos = GTK_ENTRY_ICON_PRIMARY; + { + first_icon_pos = GTK_ENTRY_ICON_PRIMARY; + second_icon_pos = GTK_ENTRY_ICON_SECONDARY; + } - icon_info = priv->icons[icon_pos]; + parent = gtk_widget_get_css_node (GTK_WIDGET (entry)); + + icon_info = priv->icons[first_icon_pos]; if (icon_info) - { - GtkCssNode *node; + gtk_css_node_insert_after (parent, gtk_widget_get_css_node (icon_info->widget), NULL); - node = gtk_widget_get_css_node (icon_info->widget); - parent = gtk_css_node_get_parent (node); - sibling = gtk_css_node_get_first_child (parent); - if (node != sibling) - gtk_css_node_insert_before (parent, node, sibling); - } + icon_info = priv->icons[second_icon_pos]; + if (icon_info) + gtk_css_node_insert_before (parent, gtk_widget_get_css_node (icon_info->widget), NULL); } static EntryIconInfo* -- 2.30.2